package com.lab.system.service;

import com.lab.common.core.domain.model.LoginUser;
import com.lab.system.domain.ExperimentCourse;

import java.util.List;


/**
 * 实验课程Service接口
 *
 * @author cf
 * @date 2025-02-10
 */
public interface IExperimentCourseService {
    /**
     * 查询实验课程
     *
     * @param id 实验课程主键
     * @return 实验课程
     */
    public ExperimentCourse selectExperimentCourseById(Long id);

    /**
     * 查询实验课程列表
     *
     * @param experimentCourse 实验课程
     * @return 实验课程集合
     */
    public List<ExperimentCourse> selectExperimentCourseList(ExperimentCourse experimentCourse, LoginUser loginUser);

    /**
     * 新增实验课程
     *
     * @param experimentCourse 实验课程
     * @return 结果
     */
    public int insertExperimentCourse(ExperimentCourse experimentCourse);

    /**
     * 修改实验课程
     *
     * @param experimentCourse 实验课程
     * @return 结果
     */
    public int updateExperimentCourse(ExperimentCourse experimentCourse);

    /**
     * 批量删除实验课程
     *
     * @param ids 需要删除的实验课程主键集合
     * @return 结果
     */
    public int deleteExperimentCourseByIds(Long[] ids);

    /**
     * 删除实验课程信息
     *
     * @param id 实验课程主键
     * @return 结果
     */
    public int deleteExperimentCourseById(Long id);

    /**
     * 获取实验剩余容纳人数
     */
    public Integer getRemainCapacity(ExperimentCourse course);
}
